surface: Add width and height properties
authorMatthias Clasen <mclasen@redhat.com>
Sat, 8 Aug 2020 03:38:28 +0000 (23:38 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 8 Aug 2020 13:24:30 +0000 (09:24 -0400)
gdk/gdksurface.c

index 09bf78e20c48778258eb4259568801e55e80ddde..db48e34f5ac126681f9e78246cd08fa4eb9fc0b4 100644 (file)
@@ -84,6 +84,8 @@ enum {
   PROP_DISPLAY,
   PROP_FRAME_CLOCK,
   PROP_MAPPED,
+  PROP_WIDTH,
+  PROP_HEIGHT,
   LAST_PROP
 };
 
@@ -522,6 +524,20 @@ gdk_surface_class_init (GdkSurfaceClass *klass)
                             FALSE,
                             G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
+  properties[PROP_WIDTH] =
+      g_param_spec_int ("width",
+                        P_("Width"),
+                        P_("Width"),
+                        0, G_MAXINT, 0,
+                        G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
+  properties[PROP_HEIGHT] =
+      g_param_spec_int ("height",
+                        P_("Height"),
+                        P_("Height"),
+                        0, G_MAXINT, 0,
+                        G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
   g_object_class_install_properties (object_class, LAST_PROP, properties);
 
   /**
@@ -742,6 +758,14 @@ gdk_surface_get_property (GObject    *object,
       g_value_set_boolean (value, GDK_SURFACE_IS_MAPPED (surface));
       break;
 
+    case PROP_WIDTH:
+      g_value_set_int (value, surface->width);
+      break;
+
+    case PROP_HEIGHT:
+      g_value_set_int (value, surface->height);
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -755,6 +779,9 @@ _gdk_surface_update_size (GdkSurface *surface)
 
   for (l = surface->draw_contexts; l; l = l->next)
     gdk_draw_context_surface_resized (l->data);
+
+  g_object_notify (G_OBJECT (surface), "width");
+  g_object_notify (G_OBJECT (surface), "height");
 }
 
 static GdkSurface *